iii fez tudo certinho, mas ano disse como funciona
ou eu sou burro e nao sei ![]()
- Fórum
- OTServ
- Recursos
- Scripting
- NPCs, monsters e raids
- Vulturenose (Parte Da Meriana Quest)
Vulturenose (Parte Da Meriana Quest)
Por Sofft, 20 de ago. de 2012 em NPCs, monsters e raids
info
Grupo: Herói
Registrado: 25/10/11
Posts: 2.2k
Reputação: +862
Gênero: Masculino
Char no Tibia: Sociopata

info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit

Bem legal, mais poderia ter usado
local items = {6096, 6095, 5918, 5462}
local slotPos = {1, 2, 3, 4, 5, 6, 7, 8}
for i = 1, #slotPos do
if isInArray(items, getPlayerSlotItem(cid, slotPos[i]).itemid) then
info
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: Surionz

@Overllord, esse NPC verifica os items que o player ta usando, no caso ele vê se o player está usando pirateSet, e se estiver deixa ele entrar na porta, para instalar esse NPC no seu servidor vai em data/npc e copia um arquivo xml la e renomeia para vulturenose.xml e ai só seguir la em cima /\.
Depois no mapEditor importa o NPC e poe ele no mapa.
@Skymagnum, sim!
não sou bom com arrays, mais estou aprendendo.=/
Editado Agosto 28 por Sofft



info
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: Surionz
Fala Xtibianos, a algum tempo venho fazendo um Global, realmente completo, não esses que estão em todos os tópicos.
Já está boa parte completo, porem uma das coisas que mais levam tempo são os NPCs, e de vez em quando irei postar um NPC completo aqui para vocês.
Dessa vez o NPC é o:
, parte da Meriana Quest, vou postar ele por ser um NPC facil de se fazer.
Vulturenose.xml
<?xml version="1.0" encoding="UTF-8"?> <npc name="Vulturenose" script="data/npc/scripts/Vulturenose.lua" walkinterval="0" floorchange="0"> <health now="100" max="100"/> <look type="96" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hrrrrm."/> <parameter key="message_farewell" value="Get lost."/> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="pirate;mission;klaus" /> <parameter key="keyword_reply1" value="We are marauders of the seas surrounding the Shattered Isles. Our only motive is greed and wealth primary purpose is to win in any way possible!" /> <parameter key="keyword_reply2" value="I've heard that {Klaus} wants someone to do a task for him." /> <parameter key="keyword_reply3" value="Klaus is the owner of this tavern" /> </parameters> </npc>Vulturenose.lua
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) -- NPC Vulturenose feito por Getulio Paixão (Off) -- Inicio NPC Vulturenose local meriana = 123477 -- Storage Meriana Quest local door = 15056 -- Storage da porta local hat = 6096 local armor = 6095 local legs = 5918 local boots = 5462 local on_hat = (getPlayerSlotItem(cid, 1).itemid == hat) local on_armor = (getPlayerSlotItem(cid, 4).itemid == armor) local on_legs = (getPlayerSlotItem(cid, 7).itemid == legs) local on_boots = (getPlayerSlotItem(cid, 8).itemid == boots) -----------------------------------------MERIANA QUEST------------------------------------------- -- Confirindo Pirate Set e entrando na porta if (getPlayerStorageValue(cid, meriana) == 13) then if (msgcontains(msg, 'enter') and getPlayerStorageValue(cid, door) <= 0) then if ((on_hat == TRUE) and (on_armor == TRUE) and (on_legs == TRUE) and(on_boots == TRUE)) then npcHandler:say("Hey, I rarely see a dashing pirate like you! Get in, matey!", cid) setPlayerStorageValue(cid,door,1) doPlayerSendTextMessage(cid, 22, "Your questlog has been updated.") talk_state = 0 else npcHandler:say("You're trying to trick me? intruder!, you're not dressed as a pirate!", cid) talk_state = 0 end elseif (msgcontains(msg, 'enter') and getPlayerStorageValue(cid, door) >= 1) then npcHandler:say("Of course you can enter.", cid) talk_state = 0 end end -----------------------------------------FIM------------------------------------------- if(npcHandler.focus ~= cid) then return false end -- Final NPC Vulturenose -- NPC Vulturenose feito por Getulio Paixão (Off) return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Desculpem a indentação, mas o fórum que está bagunçando.
E pra quem quizer usar a função getPlayerSlotItem(cid, slot) em outro script:
Editado Agosto 20 por Sofft